package com.yun.dz.dao;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;

import java.sql.*;


public class DBProvider {


    public static <T> T query(String sql, ResultSetHandler<T> rsh, Object... params) {
        // 返回查询操作对象（泛型）
        T t_queryResult = null;
        // 获取查询操作对象QueryRunner
        QueryRunner runner = new QueryRunner(DBCPDataSource.getDataSource());
        try {
            // 使用QueryRunner进行查询操作
            t_queryResult = runner.query(sql, rsh, params);
        } catch (SQLException e) {
            System.out.println("DBUtils数据库查询操作异常：" + e.getMessage());
        }
        return t_queryResult;
    }


    /**
     * 使用dbutils进行新增、修改、删除操作
     *
     * @param sql    sql语句
     * @param params sql语句的参数
     * @return 操作结果影响的记录行数
     */
    public static int update(String sql, Object... params) {
        // 返回结果集
        int i = 0;
        // 获取查询操作对象QueryRunner
        QueryRunner runner = new QueryRunner(DBCPDataSource.getDataSource());
        try {
            // （4）执行SQL语句，获取数据操作结果
            // 执行Sql语句：insert、update、delete
            i = runner.update(sql, params);
        } catch (Exception e) {
            System.out.println("DBUtils数据库更新操作异常：" + e.getMessage());
        }
        return i;
    }
}